package com.todo.strategy.card.infrastructure.repository;



import com.todo.common.common.entity.response.page.PageResult;
import com.todo.strategy.card.infrastructure.entity.condition.CardStrategyCondition;
import com.todo.strategy.card.infrastructure.entity.po.CardStrategyPO;

import java.util.List;

/**
 * (CardStrategy)表服务接口
 *
 * @author zhangwenxiang
 * @since 2024-03-04 21:10:03
 */
public interface CardStrategyRepository {

    /**
     * 根据主键id更新旅游卡攻略
     *
     * @param cardStrategyPO
     * @return
     */
    Boolean updateCardStrategyById(CardStrategyPO cardStrategyPO);

    /**
     * 新增旅游卡攻略信息
     *
     * @param cardStrategyPO
     * @return
     */
    Boolean insertCardStrategy(CardStrategyPO cardStrategyPO);

    /**
     * 根据主键id删除旅游卡攻略
     *
     * @param id
     * @return
     */
    Boolean removeCardStrategyPOById(Long id);

    /**
     * 多条件查询旅游卡攻略列表
     *
     * @param cardStrategyCondition
     * @return
     */
    PageResult<CardStrategyPO> queryCardStrategyByCondition(CardStrategyCondition cardStrategyCondition);

    /**
     * 多条件查询旅游卡攻略数量
     *
     * @param cardStrategyCondition
     * @return
     */
    Long queryCountByCondition(CardStrategyCondition cardStrategyCondition);

    /**
     * 根据主键id查询旅游卡攻略详情
     *
     * @param id
     * @return
     */
    CardStrategyPO queryCardStrategyDetailById(Long id);

    /**
     * 根据主键id查询旅游卡攻略信息
     *
     * @param id
     * @return
     */
    CardStrategyPO queryCardStrategyById(Long id);

    /**
     * 根据主键id查询旅游卡攻略信息
     *
     * @param cardId
     * @return
     */
    List<CardStrategyPO> queryCardStrategyByCardId(Long cardId);


}
